]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
workspaceSwitcherPopup: Fix fading in
authorFlorian Müllner <fmuellner@gnome.org>
Wed, 26 Jan 2022 00:43:15 +0000 (01:43 +0100)
committerMarge Bot <marge-bot@gnome.org>
Sat, 12 Feb 2022 15:28:52 +0000 (15:28 +0000)
The popover is supposed to fade in, but that's currently
broken because:

 - we already start at full opacity
 - Clutter skips transitions while unmapped

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2127>

js/ui/workspaceSwitcherPopup.js

index c70b6f7bf76392716e2730d3cb97274caedcbffb..9c5b3a9a71ab4177819486e4ab2725d803a8e58a 100644 (file)
@@ -175,15 +175,6 @@ class WorkspaceSwitcherPopup extends St.Widget {
         this._container.y = workArea.y + Math.floor((workArea.height - containerNatHeight) / 2);
     }
 
-    _show() {
-        this._container.ease({
-            opacity: 255,
-            duration: ANIMATION_TIME,
-            mode: Clutter.AnimationMode.EASE_OUT_QUAD,
-        });
-        this.show();
-    }
-
     display(activeWorkspaceIndex) {
         this._activeWorkspaceIndex = activeWorkspaceIndex;
 
@@ -192,7 +183,15 @@ class WorkspaceSwitcherPopup extends St.Widget {
             GLib.source_remove(this._timeoutId);
         this._timeoutId = GLib.timeout_add(GLib.PRIORITY_DEFAULT, DISPLAY_TIMEOUT, this._onTimeout.bind(this));
         GLib.Source.set_name_by_id(this._timeoutId, '[gnome-shell] this._onTimeout');
-        this._show();
+
+        const duration = this.visible ? 0 : ANIMATION_TIME;
+        this.show();
+        this._container.opacity = 0;
+        this._container.ease({
+            opacity: 255,
+            duration,
+            mode: Clutter.AnimationMode.EASE_OUT_QUAD,
+        });
     }
 
     _onTimeout() {